跳到主要内容

189 轮转数组

https://leetcode.cn/leetbook/read/top-interview-questions-easy/x2skh7/

https://leetcode.cn/problems/rotate-array/description/

class Solution {
public:
void rotate(vector<int>& nums, int k) {
k = k % nums.size();
this->reverseRange(nums, 0, nums.size() - 1);
this->reverseRange(nums, 0, k - 1);
this->reverseRange(nums, k, nums.size() - 1);
}

private:
void reverseRange(vector<int>& nums, int left, int right) {
while (left < right) {
int tmp = nums[left];
nums[left] = nums[right];
nums[right] = tmp;
left++;
right--;
}
}
};
  • 时间复杂度:O(n)
  • 空间复杂度:O(1)